Incident Object Description Exchange Format

Un article de Wikipédia, l'encyclopédie libre.

Utilisé dans le cadre de la sécurité informatique, IODEF (Incident Object Description Exchange Format / Format d'Échange de Messages de Description d'Incidents) est un format de données servant à décrire les informations relatives à un incident de sécurité dans le but d'être échangées entre les équipes de réponses aux incidents de sécurité des ordinateurs (Computer Security Incident Response Teams – CSIRTs).

Explication[modifier | modifier le code]

Les messages IODEF sont donc organisés de façon à être facilement lisibles par des humains, et non des machines. Les détails du format sont décrits dans la RFC 5070[1]. Cette RFC présente une implémentation du modèle de données en XML ainsi que la DTD associée.

Une des principales caractéristiques de IODEF est sa compatibilité avec IDMEF (Intrusion Detection Message Exchange Format) développé pour les systèmes de détection d’intrusion. Pour cette raison, IODEF est lourdement basé sur IDMEF et fournit une compatibilité ascendante avec celui-ci.[réf. nécessaire]

Format[modifier | modifier le code]

Schéma IODEF

IODEF est un format orienté objet structuré, composé de 47 classes pour la première version. Les formats IODEF et IDMEF ayant beaucoup en commun, la structure des champs est similaire à celle d'IDMEF. [réf. nécessaire]

Ce format est extensible : en plus de l'habituelle classe AditionnalData, qui permet d'ajouter n'importe quelle information semblant pertinente au message IODEF, La plupart des énumérations sont fournies avec un champ "ext". Ce champ est utilisé lorsqu'aucun choix proposé dans l'énumération ne convient.[réf. nécessaire]

Voici une liste des champs les plus importants :

  • IncidentID : Une. Un numéro d’identification d’incident assigné à cet incident par le CSIRT qui génère le document IODEF.
  • AlternativeID : Zéro ou une. Les numéros d’identification d’incidents utilisés par d’autres CSIRTs pour se référer à l’incident décrit dans le document.
  • RelatedActivity : Zéro ou une. Les numéros d’identification des incidents reliés à celui du document en question.
  • DetectTime : Zéro ou une. L’heure à laquelle l’incident a été détecté pour la 1re fois.
  • StartTime : Zéro ou une. L’heure à laquelle l’incident a commencé.
  • EndTime : Zéro ou une. L’heure à laquelle l’incident s’est terminé.
  • ReportTime : Une. L’heure à laquelle l’incident a été signalé.
  • Description : Zéro ou plus. ML_STRING. Une description textuelle non-formatée de l’incident.
  • Assessment : Une ou plus. Une caractérisation de l’impact de l’incident.
  • Method : Zéro ou plus. Les techniques utilisées par l’intrus durant l’incident.
  • Contact : Une ou plus. Les informations de contact pour les parties impliquées dans l’incident.
  • EventData : Zéro ou plus. Description des évènements comprenant l’incident.
  • History : Zéro ou une. Un log, des évènements ou des actions significatives qui ont eu lieu durant la gestion de l’incident.
  • AdditionalData : Zéro ou plus. Mécanismes par lequel étendre le modèle de données.

Exemple[modifier | modifier le code]

Voici un exemple d'une partie d'un document IODEF :

<!--
   ====================================================================
   == IODEF-Document class                                           ==
   ====================================================================
  -->
    <xs:element name="IODEF-Document">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="iodef:Incident" 
                      maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="version" 
                      type="xs:string" fixed="1.00"/>
        <xs:attribute name="lang" 
                      type="xs:language" use="required"/>
        <xs:attribute name="formatid" 
                      type="xs:string"/>
      </xs:complexType>
    </xs:element>
  <!--
   ====================================================================
   ===  Incident class                                              ===
   ====================================================================
  -->
    <xs:element name="Incident">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="iodef:IncidentID"/>
          <xs:element ref="iodef:AlternativeID" 
                      minOccurs="0"/>
          <xs:element ref="iodef:RelatedActivity" 
                      minOccurs="0"/>
          <xs:element ref="iodef:DetectTime" 
                      minOccurs="0"/>
          <xs:element ref="iodef:StartTime" 
                      minOccurs="0"/>
          <xs:element ref="iodef:EndTime" 
                      minOccurs="0"/>
          <xs:element ref="iodef:ReportTime"/>
          <xs:element ref="iodef:Description" 
                      minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="iodef:Assessment" 
                      maxOccurs="unbounded"/>
          <xs:element ref="iodef:Method" 
                      minOccurs="0" maxOccurs="unbounded"/>  <xs:element ref="iodef:Contact" 
                      maxOccurs="unbounded"/>
          <xs:element ref="iodef:EventData" 
                      minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="iodef:History" 
                      minOccurs="0"/>
          <xs:element ref="iodef:AdditionalData" 
                      minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="purpose" use="required">
          <xs:simpleType>
            <xs:restriction base="xs:NMTOKEN">
              <xs:enumeration value="traceback"/>
              <xs:enumeration value="mitigation"/>
              <xs:enumeration value="reporting"/>
              <xs:enumeration value="other"/>
              <xs:enumeration value="ext-value"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ext-purpose" 
                      type="xs:string" use="optional"/>
        <xs:attribute name="lang" 
                      type="xs:language"/>
        <xs:attribute name="restriction" 
                      type="iodef:restriction-type" default="private"/>
      </xs:complexType>
    </xs:element>

Logiciels prenant en charge le protocole IODEF[modifier | modifier le code]

Liens externes[modifier | modifier le code]

  • RFC 5070[1] - The Incident Object Description Exchange Format (IODEF)
  • RFC 6685[2] – Expert Review for Incident Object Description Exchange Format (IODEF) Extensions in IANA XML Registry
  • RFC 7203[3] – An Incident Object Description Exchange Format (IODEF) Extension for Structured Cybersecurity Information
  • SECEF, Projet visant à promouvoir les formats IDMEF et IODEF
  • RGI v.2

Notes et références[modifier | modifier le code]